
class util.Random
{
	//SORTE IGUAL DOS PESOS - retorna um numero sorteado entre um intervalo de numeros, todos tem o mesmo peso
	public static function sort(initial:Number, end:Number, withoutValue:Number):Number
	{
		if (withoutValue == null)
			return Math.floor( Math.random() * ((end + 1) - initial) ) + initial;
	
		else
		{
			var sortValue:Number;
			
			do
			{
				sortValue = Math.floor( Math.random() * ((end + 1) - initial) ) + initial;
			}
			while(withoutValue == sortValue)
			
			return sortValue;
		}
	}
		
	//PEGA LISTA DA SORT PELO INTERVALO - retorna um array de numeros sorteados entre um intervalo, nenhum valor se repete
	public static function shuffleList(list:Array):Array
	{
		var index:Number;
		
		var shuffleedList:Array = new Array();
		var cloneList:Array = new Array();
		
		for (var i : Number = 0; i < list.length; i++) 
			cloneList.push(list[i]);

		while(cloneList.length > 0)
		{
			index = random(cloneList.length);
			shuffleedList.push(cloneList[index]);
			cloneList.splice(index,1);
		}
		return shuffleedList;
	}
}
